#ifndef HEADERS_H
#define HEADERS_H

/*
 * libxml2 headers needed
 */
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/SAX2.h>
#include <libxml/xmlwriter.h>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include <libxml/entities.h>

/*
 * sqlite3 headers needed
 */
#include <sqlite3.h>

/*
 * standard library headers
 */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/*
 * definitions
 */
#define MAX_NODES 10
#define MAX_ENTITIES 10
#define MAX_READ 1024

/*
 * SQL statements
 */
#define INSERT_DOC "INSERT INTO doc (doc_id, doc_name) VALUES(NULL,?)"
#define INSERT_NOD "INSERT INTO nod VALUES(NULL,?,?,?,?,?)"
#define INSERT_ELM "INSERT INTO elm VALUES(?,?)"
#define INSERT_ATT "INSERT INTO att VALUES(?,?,?)"
#define INSERT_TXT "INSERT INTO txt VALUES(?,?)"
#define INSERT_ENS "INSERT INTO ens VALUES(?,?,?)"
#define INSERT_ANS "INSERT INTO ans VALUES(?,?,?)"
#define INSERT_PI  "INSERT INTO pi VALUES(?,?,?)"
#define INSERT_COM "INSERT INTO com VALUES(?,?)"

/*
 * headers for this project
 */
#include "structs.h"
#include "callbacks.h"
#include "context.h"
#include "tree.h"

/*
 * debugging
 */
#ifdef DEBUG
#define DBG(x) x
#else
#define DBG(x)
#endif

#endif
